﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Styx.Helpers;
using System.IO;
using Styx;
using Styx.Common;
using System.ComponentModel;
using DefaultValue = Styx.Helpers.DefaultValueAttribute;
using Styx.TreeSharp;

namespace BeastMaster
{
    public class BeastMasterSettings : Settings
    {
        public static readonly BeastMasterSettings myPrefs = new BeastMasterSettings();

        public BeastMasterSettings()
            : base(Path.Combine(Utilities.AssemblyDirectory, string.Format(@"Config/Pasterke/BeastMaster/{0}-BeastMasterSettings-{1}.xml", StyxWoW.Me.RealmName, StyxWoW.Me.Name)))
        {
        }
        [Setting, DefaultValue(false)]
        public bool Movement { get; set; }

        [Setting, DefaultValue(false)]
        public bool Facing { get; set; }

        [Setting, DefaultValue(false)]
        public bool Targeting { get; set; }

        [Setting, DefaultValue(2)]
        public int rapidfire { get; set; }

        [Setting, DefaultValue(0)]
        public int bloodfury { get; set; }

        [Setting, DefaultValue(0)]
        public int berserking { get; set; }

        [Setting, DefaultValue(2)]
        public int stampede { get; set; }

        [Setting, DefaultValue(0)]
        public int lifeblood { get; set; }

        [Setting, DefaultValue(2)]
        public int murderofcrows { get; set; }

        [Setting, DefaultValue(1)]
        public int trinket1 { get; set; }

        [Setting, DefaultValue(1)]
        public int trinket2 { get; set; }

        [Setting, DefaultValue(0)]
        public int engigloves { get; set; }

        [Setting, DefaultValue(3)]
        public int startaoe { get; set; }

        [Setting, DefaultValue(5)]
        public int focusfirestacks { get; set; }

        [Setting, DefaultValue(3)]
        public int callpetnr { get; set; }

        [Setting, DefaultValue(0)]
        public int misdirection { get; set; }

        [Setting, DefaultValue(1)]
        public int autocallrevivepet { get; set; }

        [Setting, DefaultValue(0)]
        public int virmenpotion { get; set; }

        [Setting, DefaultValue(0)]
        public int agilityflask { get; set; }

        [Setting, DefaultValue(0)]
        public int alchemyflask { get; set; }

        [Setting, DefaultValue(2)]
        public int Readiness { get; set; }

        [Setting, DefaultValue(55)]
        public int healthstonepercent { get; set; }

        [Setting, DefaultValue(35)]
        public int naruupercent { get; set; }

        [Setting, DefaultValue(65)]
        public int mendpetpercent { get; set; }

        [Setting, DefaultValue(true)]
        public bool UseSilencingShot { get; set; }

        [Setting, DefaultValue(5)]
        public int PauseCRKey { get; set; }

        [Setting, DefaultValue(4)]
        public int AoePauseKey { get; set; }

        public enum Keypress
        {
            None,
            LSHIFT,
            RSHIFT,
            LCTRL,
            RCTRL,
            LALT,
            RALT
        };

        [Setting, DefaultValue(Keypress.None)]
        public Keypress PauseCRKeys { get; set; }

        [Setting, DefaultValue(Keypress.None)]
        public Keypress AoePauseKeys { get; set; }

        [Setting, DefaultValue(true)]
        public bool PrintMsg { get; set; }

        [Setting, DefaultValue(20)]
        public int cooldownNormalMobs { get; set; }

        [Setting, DefaultValue(5)]
        public int cooldownBosses { get; set; }

        [Setting, DefaultValue(1)]
        public int BestialWrath { get; set; }

        [Setting, DefaultValue(35)]
        public int EatFood { get; set; }

        [Setting, DefaultValue(4)]
        public int ElitesHealth { get; set; }

    }
}
